package com.songlanyun.modules.account.model.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.hutool.core.util.DesensitizedUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ReUtil;
import com.songlanyun.common.drive.ValueObject;
import com.songlanyun.common.enums.MemberConstant;
import com.songlanyun.modules.account.entity.AccountEntity;
import com.songlanyun.modules.account.entity.UserInfoEntity;
import com.songlanyun.modules.account.entity.UserVerifiedEntity;
import com.songlanyun.modules.account.service.AccountService;
import com.songlanyun.modules.account.service.UserInfoService;
import com.songlanyun.modules.account.service.UserVerifiedService;
import com.songlanyun.modules.rabbitmq.util.SpringContextUtil;
import lombok.Data;
import org.apache.commons.lang.StringUtils;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
public class AccountAppVO implements ValueObject {

    /**
     *
     */
    private Long id;
    /**
     * 推荐用户Id(父级id)
     */
    private Long parentUserId;
    /**
     * 头像
     */
    private String headPhoto;
//    /**
//     * 昵称
//     */
//    private String nickname;
    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 手机号
     */
    private String mobile;

    /**
     * 兑换券余额
     */
    private BigDecimal voucher;

    /**
     * 手机号脱敏
     *
     * @return
     */
    public String getMobileDesensitized() {
        if (StringUtils.isNotEmpty(this.mobile)) {
            return DesensitizedUtil.mobilePhone(this.mobile);
        }
        return this.mobile;
    }

    /**
     * 性别
     * 0：未知、
     * 1：男、
     * 2：女
     */
    private Integer gender;
    /**
     * 生日
     */
    private String birthday;
    /**
     * 个人简介
     */
    private String resume;

    /**
     * 用户在当前商家店的会员等级名（角色）
     */
    private String roleName;
    /**
     * 等级编号
     */
    private String roleCode;

    /**
     * 是否是网红
     */
    private Boolean isCelebrity;

    /**
     * 我的爱心
     */
    private Integer loveValue;



    /**
     * 积分（可用积分）
     */
    private BigDecimal integralAble;

    /**
     * 优惠券
     */
    private Integer couponNum;

    /**
     * 今日是否见到
     */
    private boolean signIn;

    /**
     * 是否被激活
     */
    private Boolean activating = false;

    /**
     * 最后被激活的时间
     */
    private Date lastActivatingTime;

    /**
     * 等级
     */
    private MemberConstant.MemberGrade grade;

    /**
     * 余额(达币)
     */
    private BigDecimal balance;

    /**
     * 可提现佣金（贡献值）
     */
    private BigDecimal commissionAble;

    private BigDecimal commissionSettled;


    private Boolean isAuthSuccess = false;

    public Boolean getAuthSuccess() {
        UserVerifiedService userVerifiedService = (UserVerifiedService)SpringContextUtil.getBean("userVerifiedService");
        UserVerifiedEntity entity = userVerifiedService.loadById(id, false);
        return ObjectUtil.isNotNull(entity);
    }

}
